package com.wsz.user.service.impl;

import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wsz.pojo.Bot;
import com.wsz.pojo.R;
import com.wsz.pojo.dto.BotAddDto;
import com.wsz.pojo.dto.BotUpdateDto;
import com.wsz.user.service.BotService;
import com.wsz.user.mapper.BotMapper;
import com.wsz.utils.SecurityContextUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;

/**
* @author wangs
* @description 针对表【bot】的数据库操作Service实现
* @createDate 2023-01-30 16:30:05
*/
@Service
public class BotServiceImpl extends ServiceImpl<BotMapper, Bot>
    implements BotService{

    @Override
    public R addBot(BotAddDto bot) {

        String content = bot.getContent();
        String description = bot.getDescription();
        String title = bot.getTitle();

        bot.setUserId(SecurityContextUtils.getUserId());

        if(StringUtils.isBlank(content)){
            return R.error().message("代码为空");
        }

        if(content.length() > 10000) {
            return R.error().message("代码长度大于10000");
        }

        if(StringUtils.isBlank(description)){
            bot.setDescription("这个用户很懒啥也没有留下~~");
        }

        if(description.length() > 300) {
            return R.error().message("描述长度大于300");
        }

        if(StringUtils.isBlank(title)){
            return R.error().message("标题为空");
        }

        if(title.length() > 100){
            return R.error().message("标题长度大于100");
        }

        Bot bot1 = new Bot();

        BeanUtils.copyProperties(bot,bot1);

        boolean save = this.save(bot1);

        if(save) return R.ok();
        return R.error().message("服务器出错，请稍后再试");
    }

    @Override
    public R updateBot(BotUpdateDto bot) {
        String content = bot.getContent();
        String description = bot.getDescription();
        String title = bot.getTitle();

        if(StringUtils.isBlank(content)){
            return R.error().message("代码为空");
        }

        if(content.length() > 10000) {
            return R.error().message("代码长度大于10000");
        }

        if(StringUtils.isBlank(description)){
            bot.setDescription("这个用户很懒啥也没有留下~~");
        }

        if(description.length() > 300) {
            return R.error().message("描述长度大于300");
        }

        if(StringUtils.isBlank(title)){
            return R.error().message("标题为空");
        }

        if(title.length() > 100){
            return R.error().message("标题长度大于100");
        }

        Bot byId = this.getById(bot.getId());

        if(!byId.getUserId().equals(SecurityContextUtils.getUserId())){
            return R.error().message("没有权限修改");
        }

        Bot bot1 = new Bot();

        BeanUtils.copyProperties(bot,bot1);

        boolean b = this.updateById(bot1);

        if(b) return R.ok();
        return R.error().message("服务器出错，请稍后再试");
    }
}




